#ifndef __APP_POOL_H__
#define __APP_POOL_H__

#define POOL_QUEUE_NAME "/GATERWAY_POOL_QUEUE"
#define POOL_THREAD_SIZE 10

typedef struct {
    void *(*func)(void *);
    void *arg;
}app_pool_task_t;

/**
 * @brief : 初始化线程池
 * 1.先创建队列
 * 2.创建线程池
 * @return int 
 */
int app_pool_init(void);

/**
 * @brief : 向线程池提交 任务 （函数指针、参数）
 * @param    func: 
 * @param    arg: 
 * @return int 
 */
int app_pool_submit_task(void *(*func)(void *), void *arg);

/**
 * @brief : 销毁线程池
 * 把线程逐个 cancel
 * 关闭队列
 * 删除队列
 * @return int 
 */
int app_pool_destroy(void);

#endif /* __APP_POOL_H__ */
